'use strict';
const xtpl = require('xtpl');
const path = require('path');
const moment = require('moment');
const db = require('../configs/database')
const baseCtr = require('./baseController');
const fs = require('fs');
module.exports.studentAdd = function (req, res) {

    db.table('class').select().then(function (data) {
		db.table('subject').select().then(function(subData){
			xtpl.renderFile(
				path.join(__dirname, '../view/admin/student_add.html'),
				{
					page: 'stuAdd',
					clsList: data,
					subList:subData
				},
				function (err, content) {
					res.setHeader('Conten-Type', 'text/html;charset=utf-8');
					res.send(content);
	
				})

		});
   
    }).catch(function (err) {
        Console.log(err)
    })

};

module.exports.studentList = function (req, res) {
	var pn = req.query.pn!=undefined?req.query.pn:1;
	// ？参数要用query
	var key=req.query.key;  
	
    var limit =5;
	var start = (pn-1)*limit;
		// 关键字搜索
		var where = '';
		var s = req.query.key!=undefined && req.query.key!=''?req.query.key:'';	// 搜索的关键字
		if(s!=''){
			where = `stu_name like '%${s}%' or stu_phone like '%${s}%'`;
		}
	
    db.table('student').where(where).join({
        table:'class',
        join:'left',
        on:['class_id','class_id']
    }).limit(start,limit).select().then(function(data){
		console.log(data);
		db.table('student').where(where).count('stu_id').then(function(total){
				var endPn = Math.ceil(total/limit);
				var pageArr = [];
				for(var i=1 ; i<endPn;i++){
					pageArr.push(i);
				}
				

			xtpl.renderFile(
				path.join(__dirname, '../view/admin/student_list.html'),
		
				{
					page: 'stuList',
					stuList:data,
					pageArr:pageArr,
					pn:parseInt(pn),
					endPn:endPn,
					search:s
				},
				function (err, content) {


					res.setHeader('Conten-Type', 'text/html;charset=utf-8');
					res.send(content);

				})
		})
    });
   
};

module.exports.studentAddData = function (req, res) {
    var where = `stu_name='${req.body.stu_name}' or stu_phone='${req.body.stu_phone}'`;
    db.table('student').field('stu_id').where(where).find().then(function (result) {

		var subids=req.body['subids'];
		// student_subject_data
		
	//得到学生选中的所有课程id,然后将数据放在多表数据里面	
		
        if (JSON.stringify(result) == '{}') {
            var data = {
                stu_name: req.body.stu_name,
                class_id: req.body.class_id,
                stu_age: req.body.stu_age,
                stu_sex: req.body.stu_sex,
                stu_phone: req.body.stu_phone,
                stu_img:path.basename(req.files.stu_img.path),
                stu_time: Date.parse(req.body.stu_time) / 1000
			}
		
			// db.table('student_subject_data').where({stu_id:['in',subids]})
            db.table('student').add(data).then(function (tesdata) {
		
				// stu_ids=tesdata;
				console.log('添加成功')
				var data1=[]
				for(var k in subids){
					var json = {stu_id:tesdata,sub_id:subids[k]};
					data1.push(json)
				}
				console.log(data1);
				db.table('student_subject_data').addAll(data1).then(function () {
					//插入成功
				}).catch(function (err) {
					//插入失败
				})
                res.redirect('/admin/student/student_list')
            }).catch(function (err) {
                console.log(err)
			})
		
			
			

        } else {
            baseCtr.sendMsg('该学生已存在',res);
        }

    })

}

module.exports.studentDelete = function(req,res){
	var id = req.params.id;  // 这句可以接收网址 ...admin/student/student_delete/4
	// 接下来就是删除操作
	db.table('student_subject_data').where({stu_id:id}).delete().then(function(affectRows){
		// 删除成功，再删除学生表
		db.table('student').where({stu_id:id}).delete().then(function(affectRows){
			// 删除成功
			res.redirect('/admin/student/student_list');
		});
	});
}

// 学生修改页面
module.exports.studentEdit = function(req,res){
	// xtpl.renderFile('',{},function(){})
	// 先查询班级列表
	db.table('class').select().then(function(clsData){
		
		db.table('student').where({stu_id:req.params.id}).find().then(function(stuData){
			
			// 转换时间（记得时间戳是：毫秒）
			stuData.stu_time = moment(stuData.stu_time*1000).format('YYYY-MM-DD');
			// 显示视图
			xtpl.renderFile(
				path.join(__dirname,'../view/admin/student_edit.html'),	// 加载视图文件
				{
					page:'stuAdd',	// 页面名称
					clsList:clsData,
					stuData:stuData
				},  // 第2个参数（主要是用于传给视图的）
				function(err,content){
					// 设置输出的内容类型 html
					res.setHeader('Content-Type','text/html;charset=utf-8');
					res.send(content);
				}
			)

		})

	}).catch(function(err){
		//err为具体的错误信息
		console.log(err)	// 命令行显示(方便调试)
	})
}

// 学生修改操作
module.exports.studentEditData = function(req,res){
	// 测试
	// console.log(req.body.stu_name)
	// 修改学生的逻辑：要先检查是否已录入，没有才可以修改
	var where = `stu_id!='${req.params.id}' and (stu_name='${req.body.stu_name}' or stu_phone='${req.body.stu_phone}')`;
	db.table('student').field('stu_id').where(where).find().then(function(result){
		// console.log(JSON.stringify(result))  // {} 字符串的
		// console.log(JSON.stringify(result)=='{}')
		if(JSON.stringify(result)=='{}'){
			// 接下来这里做修改
			// console.log(req.files.stu_img);
			var data = {
				stu_name:req.body.stu_name,
				stu_age:req.body.stu_age,
				stu_sex:req.body.stu_sex,
				stu_phone:req.body.stu_phone,
				stu_time:Date.parse(req.body.stu_time)/1000,
				class_id:req.body.class_id,
				// stu_img:path.basename(req.files.stu_img.path)	// 只获取名称，不包括路径
			}
			if(req.files.stu_img.size==0){
				fs.unlink(req.files.stu_img.path,function(){})
			}else{
				data.stu_img = path.basename(req.files.stu_img.path) 
			}
			// console.log(data)
			db.table('student').where({stu_id:req.params.id}).update(data).then(function(){
				console.log('修改成功')
				// 跳转到列表页
				res.redirect('/admin/student/student_list');  // redirect 重定向，跳转
			}).catch(function(err){
				//err为具体的错误信息
				console.log(err)	// 命令行显示(方便调试)
			})
		}else{
			// 提示有记录，不能添加
			// res.send('<script>alert("记录已存在");history.go(-1)</script>');
			// 这种页面提示比较常见
			baseCtr.sendMsg('该学生已存在',res);
		}

		// res.end();	// 结束程序，跳转不能加这个
	}).catch(function(err){
		//err为具体的错误信息
		console.log(err)	// 命令行显示(方便调试)
	})
}
//学生状态修改
module.exports.studentState = function(req,res){
	db.table('student').where({stu_id:req.body.id}).update({stu_state:req.body.state}).then(function(){
	

	});

}
// 学生批量删除
module.exports.studentDeleteAll = function(req,res){
	// json对象的取值
	// res.error
	// res['error']
	//console.log(req.body['ids[]'])  // [ '12', '6' ]

	var idsArr = req.body['ids[]'];  // [ '12', '6' ]
	// 删除数据
	db.table('student_subject_data').where({stu_id:['in',idsArr]}).delete().then(function(affectRows){
		// 删除成功，再删除学生表
		db.table('student').where({stu_id:['in',idsArr]}).delete().then(function(affectRows){
			// 删除成功
			res.redirect('/admin/student/student_list');
		});
	});
}
